package com.cn.wanxi.service;

import com.cn.wanxi.dao.CompanyDao;
import com.cn.wanxi.model.CompanyModel;
import com.cn.wanxi.util.IOTool;
import com.cn.wanxi.util.Path;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

/**
 * 服务逻辑层。封装数据
 * 就是确定数据的来源
 * 第二阶段：dao
 * 第三阶段：文件
 */
public class CompanyService {


    public CompanyModel getCompanyModel() {
//        CompanyModel companyModel = new CompanyModel();
//        1.确定数据来源，现在数据来源于文件
//        2.如果文件里面有数据，则读取数据
//        3.如果没有文件，则创建文件
//        4.如果文件也有，数据也有，则读取文件
//        5.读取文件后，则将读取出来的数据进行封装到对象里面
//        CompanyDao companyDao = new CompanyDao();
//        companyModel.setLogo(companyDao.getLogo());
//        String phone = companyDao.getPhone();
//        if (phone.length() > 11) {
//            phone = phone.substring(0, 11);
//        }
//        companyModel.setNet(companyDao.net);
//        companyModel.setEmail(companyDao.email);
//        companyModel.setPhone(phone);
//        1.想要得到文件，可以通过文件路径

//        File file = IOTool.createNote(Path.PATH, Path.COMPANY_NAME);
//        2.输入输出流 --写：字节输出流
//       封装数据（要写入文件的数据）
        setCompanyList();
//        3.读取文件
        String result = IOTool.readNote();
//         4.封装数据
//        companyModel = setModel(result);
//        编译时异常
//        recursion(file);
//        System.out.println(file.delete());

        return setModel(result);
    }

    private void setCompanyList() {
        List<String> list = new ArrayList<>();
        CompanyDao companyDao = new CompanyDao();
        list.add(companyDao.getLogo());
        list.add(companyDao.address);
        list.add(companyDao.getPhone());
        list.add(companyDao.net);
        list.add(companyDao.version);
        list.add(companyDao.email);
        IOTool.wirteNote(Path.COMPANY_NAME, list);
    }

    private CompanyModel setModel(String result) {
        String[] results = result.split(Path.SPLIT);
        for (String aa : results
        ) {
            System.out.println(aa);
        }
        CompanyModel companyModel = new CompanyModel();
        companyModel.setLogo(results[0]);
        companyModel.setAddress(results[1]);
        companyModel.setPhone(results[2]);
        companyModel.setNet(results[3]);
        companyModel.setVersion(results[4]);
        companyModel.setEmail(results[5]);
        return companyModel;
    }


//    /**
//     * 创建文件
//     */
//    private File createFile() {
//        File fileDirectory = new File();
//
////        System.out.println( file.exists());
//        if (!fileDirectory.exists()) {
//            fileDirectory.mkdirs();
//        }
////        字节：英文和数字  1个字节
////        特殊字符字节：1个字节
////        汉字字节：3个字节
////        换行：2个字节
//        String fileName = "company.txt";
//        File file = new File(fileDirectory, fileName);
//        try {
//            System.out.println(file.createNewFile());
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return file;
//    }


    /**
     * 递归
     *
     * @param file
     */
    private void recursion(File file) {

//        File file = new File(path);
        File[] list = file.listFiles();
        for (int i = 0; i < list.length; i++) {
//            File aa = new File(list[i]);
            if (list[i].exists()) {
                recursion(list[i]);
            }
            list[i].delete();
        }

    }

    public static void main(String[] args) {
        new CompanyService().getCompanyModel();
    }
}
